home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
FM Towns: Free Software Collection 6
/
FM Towns Free Software Collection 6.iso
/
t_os
/
tanuki
/
tanuki.doc
< prev
next >
Wrap
Text File
|
1993-07-08
|
22KB
|
402 lines
========================================================
Tanuki listener
for FM-TOWNS
マニュアル
1993/02/04
========================================================
【機能概略】
このプログラムは、アマチュア無線を使ったコンピューター通信の方法であるパケット通信用のプログラムです。有線通信[NTT電話回線]用には使えません。
そして、パケット通信をやっておられる方には、「MTCALL機能を使ったアサマネット型RBBSの簡易タヌキダウンローダー」であるといえば、あとの説明はあまり必要ないかと思いますが、一応概略を説明しておきます。
一言でいえば、RBBS[今回の対応はアサマネット型のみ]にあるデータを、自分がアクセスすることなしにいただいてしまおうというものです。
RBBSでは、そこに書き込まれたデータは、そのRBBSにアクセスしてきた人たちによって読みだされます。このときのデータは、一応アクセスしている局宛として送られますが、実際には電波としてその他同じ周波数を受信している各局のリグへも届いています。ですから、これをパソコンでワッチ・保存していれば、自分でわざわざアクセスしに行かなくても、そのRBBSデータが手に入るはずです。
FSWなどでは特に、RBBSからのダウンロードが長時間かかります。欲しいソフトがRBBSにたくさんあるからといって、いつもいつもRBBSを半分独占してそれらをダウンロードしていたのでは、他のユーザーから明らかに白い目でみられます。しかし、この問題もこの方法を使えば解決します。
このプログラムは、TNC[TNC-22等]のMTCALLコマンドによって指定される特殊モニター機能を使って、これを実現するものです。
このプログラムは簡易型なので、一般的なタヌキダウンローダーとは以下の点で異なります。
1.mtcallコマンドを使っている。
このため、非TASCO系のTNCでは使えません。
また、フレーム取りこぼし時のタヌキ成功率が多少下がります。
2.オープニングメッセージファイルが必要。
1.と関連していますが、MTCALLを使うのでディスコネクト判定が
自力でできません。そこで、オープニングメッセージをタヌキ側で持っておく
必要があります。
【動作可能な環境】
COMP:FM-TOWNSシリーズ全機種[要2M RAM]
OS :Townsシステムソフトウェア V2.1L10・L20
TNC :Tasco系TNC[MTCALLコマンドのあるもの]
【動作を確認した環境】
COMP:FM-TOWNS20F(RAM 4MB)
OS :Townsシステムソフトウェア V2.1L10・L20A
TNC :TNC-22
JH1GLR-1 RBBS(438.34MHz・東京都練馬区)で受信確認
【開発ツール】
High C Compiler 開発キット V1.7 (L11)
386|ASM TOOL KIT V2.2 L11
FM TOWNS 拡張ライブラリI V2.1 L20
【構成ファイル】
tanuki.exp tanuki.doc update.doc tanuinst.bat stdtnc.tnc
【インストール】
専用のディレクトリを作って、そこで解凍してください。その後、いくつか設定ファイルを作る必要があります(【とりあえず使う】を参照)。
【操作】
操作は基本的にマウスで行います。キーボードからTNCへ入力することも一応できますが、漢字入力には今のところ対応していません。
画面の左上の四角をクリック:終了
画面の右上の丸をクリック :サイドワークの起動
画面の右上の四角をクリック:コンソールの起動(ステータスが「受信中」のときは
起動できません)
ステータス表示部をクリック:「受信中」にクリックすると、強制的に受信を失敗
にさせ、中断させることができます(強制失敗機能)。
PF10キー :"C <受信先RBBSコールサイン>[CR]"という内容の
文字列を送信します(簡易コネクト機能)。
【とりあえず使う】
ではとにかく使ってみるために、順を追って説明していきます。
まず、このプログラム用のディレクトリを作ります。
A:\>MD TANUKI
A:\>CD TANUKI
ここで、アーカイブを解凍します。最低TANUKI.EXP TANUINST.BAT は置いておいてください。
ここまでは問題ないでしょう。
さて、このプログラムのインストールをする前に、ひとつファイルを作っておく必要があります。タヌキするRBBSのオープニングメッセージを入れたファイルです。オープニングメッセージとは、例えば下の例のようなものです。
例:
*** Welcome to (((
DOWN-TOWN.NET
))) ユーザデータ読込中
大体お分かりと思います。RBBSコネクト直後にでるメッセージのことですね(いわゆるCTEXT)。このプログラムではディスコネクト判定にこの文字列を使っていますので、必ずプログラム側に教えておく必要があります。
では、このファイルを作りましょう。ただし、この時注意があります。
まず第一に、オープニングメッセージ以外の文字列は1バイトたりとも入れないこと。コントロールコード・CRコード等も含みます。逆に、オープニングメッセージであれば、一部だけ入れておいてもOKです。ただし、あまり短すぎるとディスコネクト判定をプログラムが間違う可能性があります。
第二に、文字列はコネクトのたびにRBBS側から必ず送信されるものであること。例えば、コネクト日時・コネクト局コールサインなどが送信されてくる場合に、その部分を含んでしまうといけません。
第三に、文字列は連続しているものであること。途中をはしょって、オープニングメッセージのはじめとおわりの部分を勝手にくっつけたりしたものを登録してはいけません。
この条件にあうように、通常のターミナルソフトなどを使って、相手のRBBS局にコネクトし、ダウンロードするなどして、オープニングメッセージの入ったファイルを作ってください。ファイル名については、なんでも構いません。
例えばJH1GLR-1というRBBSの場合には、このファイルの内容は次のような感じになります。
ファイルの内容:
*** Welcome to <<<
AMIGOS.NET
>>> *** Wait a moment please.[EOF]
これは、tanuki.expと同じディレクトリに置きます。用意できたら、次にインストールをします。tanuinst.batを実行してください。
書式:
tanuinst <RBBSコールサイン> <SSID> <オープニングメッセージの入ったファイル名>
たとえば、JH1GLR-1というRBBSの場合には次のようになります。
例:
tanuinst jh1glr 1 openmes.dat
・ <オープニングメッセージの入ったファイル名>というのは、今作ったオープニングメッセージの入ったファイルのファイル名です。
・ <RBBSコールサイン>の部分には、SSIDはつけないでください。
・ SSIDのないRBBSの場合には<SSID>には 0 を指定してください。
このようにすると、指定したRBBS用のディレクトリが作られ、指定したRBBSのタヌキのためのインストールが行われます。この時、ファイルに入っていたオープニングメッセージの登録も行われます。
さて、インストールが終了したら、作成されたディレクトリの中を見てみてください。.SET という拡張子を持つファイルがあるはずです。これは間接コマンドファイルといいます。
この間接コマンドファイルはまだ完全なものではありません。次の作業として、エディタなどを使って、このファイルの最後の行に、タヌキしたいROOM名(USERとMAILは指定できません)を大文字で書き加えてください。これが終われば、間接コマンドファイルは完全なものになります。
例:
-call jh1glr-1
-asama
-dir jh1glr
-manage jh1glr\jh1glr.tan
-openm jh1glr\jh1glr.opm
-res jh1glr\jh1glr.res
BBS INFO PDS SALON TEST FISH CAR BEPAL DATA TECHNO OSIETE PKT96 DX ←書き加える
これで、インストールは完全に終了です。いよいよプログラムを起動します。まずプログラムをアイテム登録してください。この時、「TownsOSアプリケーション」でディレクトリ移動は「あり」、パラメータには「@<間接コマンドファイルのパス名>」と指定します。上のJH1GLR-1の例でいえば、パラメータは「@jh1glr\jh1glr.set」です。
注意:このときのパスの基準はTANUKI.EXPのあるパスです。ディレクトリ移動を「あり」にしているのですから当然ですが、念のため。
それができたら、ダブルクリックして起動します。起動すると、画面の上の方に「TNC設定中」と表示されます。この部分はステータス表示部といい、プログラムの動作状態を表示する部分です。このメッセージはその通りTNCの設定をしているときに表示されますので、しばらく待っていてください。準備ができると表示は「待機中」になります。
この時点で、RBBSからのデータを受信することができるようになっています。リグの周波数がちゃんとRBBSに合っていて、うまく受信できていれば、そのうち「受信中」という表示が出てタヌキダウンロードが開始されるはずです。このへんは、見ていればわかります。
無事一つのデータがタヌキダウンロードされ終わると、「受信完了」と表示され、待機状態に戻ります。もし途中で一部分が受信できなかったりすると、「失敗」と表示されます。この場合には、その失敗した受信データについては、ふたたびそのデータを受信した時に、タヌキダウンロードがやり直されます。
大体こんな感じで、ほうっておけば勝手に受信しタヌキしていきます。CRTの電源を落として(UX/UG/URの人はスクリーンシャッタでもかけて)一晩待ってみてください。結構とれていると思います。終了するには画面の左上の四角の部分をクリックしてください。TNCの設定を元に戻したあと終了します。
今の例の場合、受信したデータは、ディレクトリJH1GLR-1以下にROOMごとに作られたサブディレクトリの中のファイルに入っています。これは見てみればわかるでしょう。
【動作】
このプログラムの動作の概略を説明します。
まず起動直後、TNCを設定します(設定内容については後述)。
TNC設定が終わると待機状態に入ります。この状態で、アサマネットのブレティンのヘッダ部分を検出すると、プログラムはそのブレティンが以前に既に受信されたものであるかどうかをログ管理ファイルと照合して調べ、もしログ管理ファイルのなかにそのヘッダがなかったとき(まだ受信したことがないブレティンだったとき)には、ログファイルをオープンし、検出したヘッダをそこに書き込んだ後、受信状態へ移行します。
受信状態では、受信した文字はすべてログファイルに書き込まれていきます。
受信状態で、"----- End Of [ROOM名 メッセージ番号] -----" ,"----- Break .. -----",またはRBBSのオープニングメッセージの文字列(-OPENMコマンドで設定する)のいずれかを受信すると、受信を終了し、待機状態へ移行します。その際には、ログファイルのクローズと、受信したサイズのチェックを行います。受信したサイズが、そのブレティンのヘッダ部にあったサイズと一致したときは、ログ管理ファイルにそのブレティンのヘッダを記録します。ただし、RBBSのオープニングメッセージか"----- Break .. -----" を検出したときには受信失敗とみなされ、サイズが一致してもログ管理ファイルの記録は行われません。
【詳細な使用法】
《起動法》
TMENUからアイテム登録後起動します。アイテム登録では、「TOWNS-OS」アプリケーションとして登録してください。ディレクトリ移動は「あり」。
《コマンドライン》
RUN386 TANUKI <コマンド> <受信フィールド名>
アイテム登録のときには<コマンド>以降をパラメータとして指定してください。
<コマンド>及び<受信フィールド名>の部分は、"@"マークを先頭に付けたファイル名をコマンドラインに書くことによって、ファイルで指定できます。このファイルの中では、各パラメータにあたる内容をホワイトスペース文字(スペース・タブ・リターン)で区切って書きます。
コマンドラインの指定は、原則として左から右へ読み込まれますが、矛盾する指定をした場合に必ずしも右側の指定が優先されるとは限らない場合があります。
なお現在のところパラメータ列の合計サイズは、@で指定したファイルの内容も含め65535バイト以下である必要があります。
〈コマンドの説明〉
コマンドには以下のものがあります。コマンドの大文字・小文字は区別されません。コマンドは0個以上指定することができ、必ず-(マイナス記号)から始まります。そのように指定されていないパラメータは、受信フィールドの指定と見做されます。
注意:コマンドによってはファイル名を指定するものがありますが、この場合のパスは起動時のカレントディレクトリが基準になります。もちろんフルパスで指定すれば問題ありません。
-openm , -file , -tnc コマンドで指定されるファイルは、ユーザーが予め用意しておくファイルです。-res , -manage , -log コマンドで指定されるファイルは、プログラム側が動作中に自動的に作るファイルです。
また -dir コマンドで指定されるディレクトリは、予めユーザーが作っておく必要があります。
1. -asamaコマンド
書式: -asama
プログラムに対しアサマネットタイプのRBBSを受信するよう指示するコマンドですが、現在のサポートはアサマネットタイプのみなので、デフォルトでこのコマンドが指定されるようになっており、現時点ではわざわざ指定しても無意味です。
2. -openmコマンド
書式: -openm <ファイル名>
受信するRBBSのオープニングメッセージを入れたファイルを指定します。このプログラムでは、データ受信中にこのファイルにあるメッセージを受信すると、ログ出力を中止するようになっています。
デフォルトは"stdasama.opm"というファイル名になっています。
3. -callコマンド
書式: -call <コールサイン>
受信するRBBSのコールサインを指定します。SSIDがある場合はそれも指定してください。
4. -logコマンド
書式: -log <ファイル名>
受信したブレティンを格納するためのファイル(ログファイルと呼びます)のファイル名を指定するコマンドです。
デフォルトは"tmp.log"です。
注:ただし、実際の運用ではこのコマンドではなく、-dirコマンドを使ったほうがいいでしょう(-dirコマンドの項参照)。
5. -manageコマンド
書式: -manage <ファイル名>
受信したブレティンを格納する際に、同じブレティンを重複して格納しないように、いままでに格納したデータの一覧を格納しておくファイル(ログ管理ファイルと呼びます)の名前を指定するコマンドです。
デフォルトではログ管理ファイルは"logman.tan"になります。
6. -fileコマンド
書式: -file <ファイル名>
通常このプログラムでは受信データの入力先はRS-232Cポートになっていますが、このコマンドはそれをファイルに変更します。一般のターミナルソフトなどでMTCALL機能を使って(手動で)タヌキダウンロードしたデータがファイルの形で残っている場合に使います。ゴミの除去と、重複データのチェックというメリットがあります。
7. -portコマンド
書式: -port <ポート番号>
受信データの入力先とするべきRS-232Cのポート番号を指定します。
デフォルトは0(内蔵232Cポート)です。
8. -gosaコマンド
書式: -gosa <許容誤差(単位バイト)>
受信したブレティンのバイト数のチェックをする際の許容誤差を指定します。
|本来のサイズ-実際に受信したサイズ| <= このコマンドで指定したバイト数
という関係が成り立つときサイズチェック合格となります。
デフォルトは0です。
9. -dirコマンド
書式: -dir <ディレクトリ名>
普通の状態では、受信データは、-logコマンドで指定したファイル(指定がなければデフォルトのtmp.log)に、ルーム種別を問わず全て一緒にされて、受信した順序でどんどん放り込まれていきます。しかしそれではブレティンを整理する際に不便です。この-dirコマンドを指定すると、ログファイルの格納形式が、その点を解決するための拡張形式に拡張されます。
この拡張形式では、各ルームごとに、この-dirコマンドで指定したディレクトリに、ルーム名をサブディレクトリ名として持つサブディレクトリが作られ、そのサブディレクトリに、受信した各データがひとつひとつファイルとして格納されていきます。その時のファイル名は、そのデータのメッセージ番号になります。
同時に-logコマンドは指定しないでください。-logは非拡張形式を使うとき指定し、-dirは拡張形式を使うとき指定します。
実際の運用ではRBBSごとにディレクトリを作っておき、受信時この-dirコマンドでそのRBBSのディレクトリを指定するようにすればいいでしょう。
このコマンドが指定されなかったときは、従来の-logコマンドの機能が使われます。-logコマンドと-dirコマンドが両方指定されたときは、-dirコマンドが優先されます。
余談ながら、この形式で格納されたデータを見るときは、MIEL(フリーソフトウェア)を使うと非常に便利です。
10. -killコマンド
書式: -kill
通常の状態では、ログファイルはアペンドモードでオープンされ書き込まれていくため、拡張形式でログをとっている場合において、以前受信を失敗したことがある(そして受信に成功した)ログファイルには、ファイルの頭に、以前失敗したときのゴミデータがついてしまいます。このコマンドを指定すると、ログファイルを上書きモードでオープンし書き込むので、それを防ぐことができます。拡張形式を使っていない時は、このコマンドが指定されても無視されます。
11. -passallコマンド
書式: -passall
TNCのPASSALLパラメータをONにして受信します。これにより、多少電波の入りの悪いRBBSにも一応対応できるようになります。ただし、当然文字抜け・文字化け等が激しくなります。また、このコマンドを使用する際は、同時に-gosaも大きめに設定しておいた方がいいでしょう。
12. -resコマンド
書式: -res <ファイル名>
受信状況が記録されるファイル(resファイル)名を指定します。
このコマンドで指定したファイルには、受信先RBBSにアクセスしてきた局全てのコールサイン/日時/読出したROOM・メッセージ番号等が記録されます。UCの監視等にも使えるかもしれません(もっとも、書き込みについては記録されませんが)。
<RESファイルの形式>
1. 受信したブレティンのROOM・番号 または RBBSへのアクセスを検出
したときは「アクセス開始」
2. 読出の開始が検出された時刻 または アクセスの開始が検出された時刻
(注)
3. 読出の終了が検出された時刻(注)
4. 当該ブレティンに対するTANUKI側対応
1)「受信済」
既に以前に当該ブレティンは受信していたので無視した。なお、
受信内容のサイズを一応チェックしてみたところ文字落ちなどはな
かった。
2)「受信失敗」
当該ブレティンをログ記録しようとしたが文字落ちなどでうまくいか
なかった。
3)「済-失敗」
既に以前に当該ブレティンは受信していたので無視した。ただし、
一応受信内容のサイズをチェックしてみたところ文字落ちなどが
あったので、もしログ記録していたら「受信失敗」になっただろう
ことを示す。
4)「受信成功」
受信内容をログファイルに記録し成功した。
5. 当該ブレティンを読みだした人 または アクセスを開始した人 のコール
サイン
6. 読出者が読出途中でディスコネクトしてしまったらしい場合「中途断」
(注) TOWNS内蔵時計の時刻です。
このコマンドを指定しなかったときには、RESファイルは作られません。
13. -tncコマンド
書式: -tnc <ファイル名>
プログラム起動時にTNCに対して発行する設定コマンドの内容を指定するファイルを指定します。デフォルトは"stdtnc.tnc"です。なおファイルが見つからない場合は従来バージョンと同じ設定を行います(後述)。
このファイルには、一行にひとつのTNCコマンドを書きます。なお、"$CALL$"という文字列は、受信先コールサイン(-CALLで指定されたもの)に変換されます。
このファイルを使えばTNCをどんな設定にもできますが、最低MTCALLコマンドは受信先RBBSコールに設定しておかないとプログラムが全然まともに動きませんから注意してください。
なおこのコマンドによって起動時設定された内容は、プログラム終了時にもとの状態に戻されます。
14. -fullコマンド
書式: -full <フィールド名>
ログ管理ファイルには通常受信に成功したブレティンのROOM名と番号だけを記録しますが、このコマンドで指定したフィールド(ROOM)についてはタイトル行すべてを記録します。
これは、「分割ISHデータはISHで解凍して.#00で保存しておき、オリジナルの方はどんどんDELしてしまう」というやり方をするときのためのものです。PDSルームなどISHデータの入っていることの多いROOMをこのコマンドで指定しておけば、ファイル名をログ管理ファイルからgrepなどで検索して、タイトル行をとりだすことができ、ファイルの内容がある程度掴めます。
15. ヌル指令
書式: -
-のみを指定するとヌル指令となります。何も動作をしないコマンドです。
〈受信フィールド名〉
-で始まらないパラメータは受信するフィールドの指定になります。フィールドとは、ROOMのことです。最大で50個まで指定できます。受信フィールド名の大文字・小文字は区別されます。アサマネットでは、普通ROOM名は大文字で表されますので、ここでの指定も大文字で行ってください。なお、MAILという名前のフィールドは指定できません。また、USERルームの受信には対応していません。
【RS-232Cの設定】
RS-232Cポートに関するボーレート等の設定については、TMENUの「設定」またはDOSのSETUPコマンドで設定したものがそのまま使われます。ただし、フロー制御は強制的にXON/XOFFの方式になります。これに関するTNCの設定の変更はプログラム側が自動的に行い、終了時に自動的に元に戻しています。
なおRS-232Cの受信バッファは 約64K バイト確保しています。
【TNCの設定について】
このプログラムの開始時のTNCの設定は、-tncコマンドで指定したファイルの通りになりますが、そのファイルが見つからない場合には以下のような設定になります。
AUTOLF Y
BBSMSGS Y
CONOK N
MONITOR Y
MALL Y
MTCALL 受信先RBBSコールサイン
MMUI N
XFLOW Y
XMITOK N
-passallが指定されていれば
PASSALL Y
【ログ管理ファイルの構造について】
中を見てみればわかると思いますが、ログ管理ファイルには受信した各ブレティンのタイトル行 または ROOM名・番号が格納されているだけです。
「夜タヌキしているときは、フロッピーで運用し、保存はHDD」というような運用でいくつかに分かれてしまったログ管理ファイルのデータを一緒にしたい場合には、エディタなどでただ単純にくっつければ、両方のデータを含むログ管理ファイルができあがります。
このようにした場合、同じ内容のものが重複して入ってしまうことがありますが、プログラムの動作には関係ありません。ただ、ファイルのサイズがどんどん大きくなっていってしまいます。この場合は、UNIQ(ツール)などを使ってやればファイルサイズを最小限に抑えられるでしょう。
【著作権等】
このプログラムの著作権は作者[中川 理明]にあります。
《使用条件》
商用・私的利用を問わず自由です。もっとも、アマチュア無線では商用の利用は無理でしょうが・・・。
ただし、作者はこのプログラムに起因するすべての責任を負わないものとします。
《配付条件》
このプログラムは、誰でも、どこにでも自由に配付または転載することができます。その際に、利益を得ても構いません。
ただし、アサマネットタイプのRBBSに転載する場合には、なるべくそのRBBS用のオープニングメッセージファイルを転載者が用意して、このプログラムに付属させるようにしてください。
また、ドキュメントファイル(*.doc)と実行ファイル(*.exp)をなるべくばらばらにしないようにしてください。その他のファイルに関しては、特に一緒に転載・配付する必要はありません。
〈改変物の配付〉
このプログラムの一部を変更したプログラムを利用/配付することは構いませんが、私の著作権表示は削除しないでください。どんどん改変してほとんど原型をとどめなくなった場合も同様とします。
ただし、MAILルームの受信を可能にする/ウイルスを混入するといった、公序良俗に反するような改造はご遠慮ください。
【謝辞】
このプログラムの文字表示部・DOSコンソール機能にはMIYAZAKI氏制作のコンソールライブラリを使用させていただきました。MIYAZAKI氏に感謝致します。
このプログラムの動作チェックはJH1GLR-1 RBBS[AMIGOS.NET]で行いました。JH1GLR OMに感謝致します。
【連絡先】
このプログラムに関するバグ報告・ご感想等の連絡、あるいは使い方でわからない点についてのご質問等は、以下へ遠慮なくどうぞ。
JH1GLR-1 RBBS[438.34MHz・東京都練馬区]
7K1DCL @ JF1LGS[FWD RBBS]
JM1YSC RBBS[438.56MHz・東京都武蔵野市]
a21268@cfi.waseda.ac.jp[junet]
(確実な順です)
P.S. たまに、起動/終了直後のTNC設定に失敗し、「TNC設定中」の表示がでたままになることがあります。このような場合には、いったん終了させてから、TNCの電源を入れなおし、その後プログラムをもう一度起動しなおしてください。なおその際には、念のためchkdsk /fを実行してください。
P.S.2 はたしてこのマニュアルだけで普通の人がこのプログラムを無事動作させることができるかどうか、不安ではあります・・・(^_^;)。わからないときは遠慮せず質問してください。
(C)Copyright Yoshiaki Nakagawa 1992-1993